home *** CD-ROM | disk | FTP | other *** search
- UsageData = {dbg:function(str)
- {
- trace("UsageData." + str);
- },getIssueNumber:function()
- {
- return Tardis.Settings.version;
- },init:function()
- {
- var trySOprop = function(objSo, name, §set§)
- {
- var val = objSo.data[name];
- if(val == null)
- {
- objSo.data[name] = eval("set");
- return eval("set");
- }
- return val;
- };
- var makeUID = function()
- {
- return Math.random().toString().substr(2,7) + "" + Math.random().toString().substr(2,7);
- };
- var parent = this;
- this.soIssue = SharedObject.getLocal("TardisV" + Tardis.Settings.version);
- this.soGlobal = SharedObject.getLocal("TardisGlobal");
- if(this.soIssue.getSize() > this.KB_LIMIT)
- {
- this.dbg("size has exceeded " + this.KB_LIMIT / 1024 + "Kb\nClearing log and ping data...");
- this.soIssue.data.logData = [];
- this.soIssue.data.pingData = [];
- this.dbg("cleared. size is now " + this.soIssue.getSize() / 1024 + "Kb");
- }
- var strUID = this.soGlobal.data.UID;
- if(strUID == null || strUID == "")
- {
- this.FirstTime = true;
- strUID = makeUID();
- }
- else
- {
- this.FirstTime = false;
- }
- this.soGlobal.data.UID = this.UID = strUID;
- if(this.soIssue.data.firstTimeIssueRun == null)
- {
- trace("-----------------------------------------------------------------");
- trace("This is the first time issue " + Tardis.Settings.version + " has been run...");
- trace("-----------------------------------------------------------------");
- this.FirstTime = true;
- UsageData.setSoProp("soIssue","firstTimeIssueRun",false);
- }
- else
- {
- this.FirstTime = false;
- }
- this.logData = trySOprop(this.soGlobal,"logData",[]);
- this.pingData = trySOprop(this.soIssue,"pingData",[]);
- this.optin = trySOprop(this.soGlobal,"optin",true);
- this.soIssue.flush();
- this.soGlobal.flush();
- this.lastTime = null;
- this.lastPage = null;
- },addPageEntry:function(pageValue)
- {
- Tardis.debug.addProcess("monitorTracking","UsageData : addPageEntry : lastPage : " + this.lastPage);
- var now = getTimer();
- var sessionGroup = this.logData[this.logData.length - 1];
- if(this.lastTime != null)
- {
- var timeValue = Math.round((now - this.lastTime) / 1000);
- var currEntries = sessionGroup.entries;
- currEntries.push(timeValue + "." + this.lastPage);
- }
- else
- {
- sessionGroup.startTime = this.getTimeStamp();
- }
- Tardis.debug.addProcess("monitorTracking","UsageData : addPageEntry : lastPage : duration : " + timeValue);
- Tardis.debug.addProcess("monitorTracking","UsageData : addPageEntry : pageValue : " + pageValue);
- Tardis.debug.showProcessPath("monitorTracking");
- Tardis.debug.clearProcessPath("monitorTracking");
- this.lastTime = now;
- this.lastPage = pageValue;
- },addAdvertEntry:function(val, strType)
- {
- this.penultimateEntry = this.lastPage;
- Tardis.debug.addProcess("monitorTracking","UsageData.addAdvertEntry()");
- Tardis.debug.addProcess("monitorTracking","penultimateEntry: " + this.penultimateEntry);
- Tardis.debug.addProcess("monitorTracking","Tardis.Sections.length + 1: " + (Tardis.Sections.length + 1));
- if(strType == "promo")
- {
- val += "p";
- }
- Tardis.debug.addProcess("monitorTracking","val : " + val);
- var strLog = Tardis.Sections.length + 1 + "." + val;
- Tardis.debug.addProcess("monitorTracking","strLog: " + strLog);
- Tardis.debug.showProcessPath("monitorTracking");
- Tardis.debug.clearProcessPath("monitorTracking");
- this.addPageEntry(strLog);
- },addWebAdvertEntry:function(val)
- {
- var currentPage = this.lastPage;
- Tardis.debug.addProcess("monitorTracking","UsageData.addWebAdvertEntry()");
- Tardis.debug.addProcess("monitorTracking","currentPage: " + currentPage);
- Tardis.debug.addProcess("monitorTracking","Tardis.Sections.length + 1: " + (Tardis.Sections.length + 1));
- Tardis.debug.addProcess("monitorTracking","val: " + val);
- var strLog = Tardis.Sections.length + 1 + "." + val;
- this.addPageEntry(strLog);
- this.addPageEntry(currentPage);
- Tardis.debug.showProcessPath("monitorTracking");
- Tardis.debug.clearProcessPath("monitorTracking");
- },addAdvertEndEntry:function()
- {
- Tardis.debug.addProcess("monitorTracking","UsageData.addAdvertEndEntry()");
- this.addPageEntry(this.penultimateEntry);
- this.aolRoot = null;
- Tardis.debug.addProcess("monitorTracking","should add the previous entry again - penultimateEntry: " + this.penultimateEntry);
- Tardis.debug.showProcessPath("monitorTracking");
- Tardis.debug.clearProcessPath("monitorTracking");
- },addAolEntry:function(subsectionID)
- {
- Tardis.debug.addProcess("monitorTracking","UsageData.addAolEntry()");
- if(this.aolRoot == null)
- {
- trace("");
- trace("");
- trace("");
- trace("set the root");
- var root;
- trace("checking for \'.\' in " + this.lastPage);
- var arrIdElements = this.lastPage.split(".");
- trace("arrIdElements: " + arrIdElements);
- if(arrIdElements.length <= 2)
- {
- root = this.lastPage;
- }
- else
- {
- root = arrIdElements[0] + "." + arrIdElements[1];
- }
- trace("root: " + root);
- Tardis.debug.addProcess("monitorTracking","-- aolRoot set to " + root);
- this.aolRoot = root;
- }
- if(subsectionID == null)
- {
- var strLog = this.aolRoot;
- }
- else
- {
- var strLog = this.aolRoot + "." + subsectionID;
- }
- this.addPageEntry(strLog);
- },addAolEndEntry:function(subsectionID)
- {
- Tardis.debug.addProcess("monitorTracking","addAolEndEntry()");
- if(subsectionID >= 2 && subsectionID <= 5)
- {
- Tardis.debug.addProcess("monitorTracking","-- just left an intro section (" + subsectionID + ")");
- Tardis.debug.addProcess("monitorTracking","-- we\'re displaying the hub");
- Tardis.debug.addProcess("monitorTracking","-- so just add the base strLog: " + this.aolRoot);
- this.addAolEntry();
- }
- },addSessionGroup:function()
- {
- var objG = {time:this.getTimeStamp(),entries:new Array(),startTime:null,version:Tardis.Settings.version};
- this.logData.push(objG);
- },addPingEntry:function()
- {
- var obj = {firsttime:this.FirstTime,time:this.getTimeStamp()};
- this.pingData.push(obj);
- },sendToServer:function()
- {
- var strURL = "";
- if(this.pingData.length > 0)
- {
- var objP = this.pingData[0];
- var strBaseURL = this.PING_URL + "?";
- var strQuery = "cd=" + Tardis.Settings.version + "&u=" + this.UID + "&t=" + objP.time;
- if(objP.firsttime == true)
- {
- strQuery += "&first=1";
- }
- Tardis.debug.addProcess("monitorLogSize","UsageData.sendToServer()");
- Tardis.debug.addProcess("monitorLogSize","-- pingData length: " + this.pingData.length);
- Tardis.debug.addProcess("monitorLogSize","-- send to: " + this.PING_URL);
- Tardis.debug.addProcess("monitorLogSize","-- data string: " + strQuery);
- }
- else
- {
- var objGroup = this.logData[0];
- var arrEntries = objGroup.entries;
- var len = arrEntries.length;
- Tardis.debug.addProcess("monitorLogSize","UsageData.sendToServer()");
- Tardis.debug.addProcess("monitorLogSize","-- logData length: " + this.logData.length);
- if(len == 0)
- {
- if(this.logData.length > 1)
- {
- Tardis.debug.addProcess("monitorLogSize","-- empty cached group - deleting");
- this.logData.shift();
- }
- else
- {
- Tardis.debug.addProcess("monitorLogSize","-- no cached data - no new data");
- }
- if(this.logData.length > 1 && delete_counter < 100)
- {
- this.checkSend();
- }
- else
- {
- delete_counter = 0;
- }
- delete_counter++;
- return undefined;
- }
- delete_counter = 0;
- var len = Math.min(arrEntries.length,10);
- var strBaseURL = this.LOG_URL + "?";
- var strQuery = "";
- strQuery += "cd=" + objGroup.version;
- strQuery += "&u=" + this.UID;
- strQuery += "&t=" + objGroup.time;
- strQuery += "&s=" + objGroup.startTime;
- strQuery += "&d=" + arrEntries.slice(0,len).join("_");
- this.num_logs_sent = len;
- Tardis.debug.addProcess("monitorLogSize","-- Sending " + this.num_logs_sent + " logs in this iteration...");
- }
- Tardis.debug.showProcessPath("monitorLogSize");
- Tardis.debug.clearProcessPath("monitorLogSize");
- strURL = strBaseURL + strQuery;
- lingo("Flsh_usage_sendData(\"" + strURL + "\")");
- this.active = true;
- },checkSend:function()
- {
- if(this.active == false && (this.pingData.length > 0 || this.optin == true))
- {
- this.sendToServer();
- }
- else
- {
- this.dbg("no data to send");
- }
- },onSent:function(success)
- {
- Tardis.debug.addProcess("monitorTracking","UsageData.onSent() : success : " + success + ", UID : " + this.UID);
- Tardis.debug.showProcessPath("monitorTracking");
- Tardis.debug.clearProcessPath("monitorTracking");
- with(this)
- {
- active = false;
- if(success)
- {
- if(pingData.length > 0)
- {
- pingData.shift();
- }
- else
- {
- var entries = logData[0].entries;
- entries.splice(0,num_logs_sent);
- if(logData.length > 1 && entries.length == 0)
- {
- dbg("last group now empty - deleting");
- logData.shift();
- }
- }
- checkSend();
- }
- else
- {
- dbg("send failed");
- }
- }
- },deleteSoProp:function(SO, prop)
- {
- delete this[SO].data[prop];
- },setSoProp:function(SO, prop, val, objName)
- {
- Tardis.debug.addProcess("monitorSO","UsageData.setSoProp()");
- Tardis.debug.addProcess("monitorSO","-- SO:" + SO);
- Tardis.debug.addProcess("monitorSO","-- prop:" + prop);
- Tardis.debug.addProcess("monitorSO","-- val:" + val);
- if(objName != null)
- {
- var tmpObj = this.getSoProp(SO,objName);
- tmpObj[prop] = val;
- this[SO].data[objName] = tmpObj;
- Tardis.debug.addProcess("monitorSO","-- objName:" + objName);
- }
- else
- {
- this[SO].data[prop] = val;
- }
- Tardis.debug.showProcessPath("monitorSO");
- Tardis.debug.clearProcessPath("monitorSO");
- this[SO].flush();
- return val;
- },setSoObj:function(SO, soObjName, obj)
- {
- Tardis.debug.addProcess("monitorSO","UsageData.setSoObj()");
- Tardis.debug.addProcess("monitorSO","-- SO:" + SO);
- Tardis.debug.addProcess("monitorSO","-- soObjName:" + soObjName);
- for(var i in obj)
- {
- Tardis.debug.addProcess("monitorSO","-- obj[" + i + "]:" + obj[i]);
- }
- Tardis.debug.showProcessPath("monitorSO");
- Tardis.debug.clearProcessPath("monitorSO");
- this[SO].data[soObjName] = obj;
- this[SO].flush();
- return obj;
- },getSoProp:function(SO, prop)
- {
- Tardis.debug.addProcess("monitorSO","UsageData.getSoObj()");
- Tardis.debug.addProcess("monitorSO","-- SO:" + SO);
- Tardis.debug.addProcess("monitorSO","-- prop:" + prop);
- Tardis.debug.showProcessPath("monitorSO");
- Tardis.debug.clearProcessPath("monitorSO");
- return this[SO].data[prop];
- },setOptIn:function(val)
- {
- this.optin = val;
- this.setSoObj("soGlobal","optin",val);
- },getTimeStamp:function()
- {
- var pf = function(nm)
- {
- nm = nm.toString();
- return nm.length != 1 ? nm : "0" + nm;
- };
- var d = new Date();
- var s = "" + pf(d.getUTCDate()) + "." + pf(d.getUTCMonth() + 1) + "." + d.getUTCFullYear() + "_" + pf(d.getUTCHours()) + "." + pf(d.getUTCMinutes()) + "." + pf(d.getUTCSeconds());
- return s;
- },LOG_URL:null,PING_URL:null,KB_LIMIT:87040,DEBUG:"none",delete_counter:0,active:false};
-